package main
/*
自定义包
内置包--标准包
第三方包



1、go语言中模块文件的顶部，声明这是哪个包
2、必须包含一个main包，main包中要有一个main函数，所有程序的入口就是main函数
3、go语言中一个目录下放一个包，一个包可以有不同的文件，目录的名字可以跟包名不一样
4、包中变量名首字母大写就表示公有成员(可以给外部包调用)，如果没有大写，那就是私有成员，只能在包中调用

查看go的环境
go env

GOROOT  go 的安装路径
GOPATH  go 的包管理

go项目管理
#1、gopath
早期的go项目环境是看gopath的设置，项目都要放在$GOPATH/src目录下，下载的包也放在这个目录下
这种管理会造成多个项目混用，管理起来不方便，不好控制版本，而且项目目录必须放在GOPATH里面
#2、go vendor
项目还是放在$gopath下面，只是引入了vendor可以进行不同项目的版本管理
#3、go mod
开启：go env -w GO111MODULE=on
	1、工程目录可以放在GOPATH路径之外
	2、要求项目中必须要有go.mod文件，管理版本
	3、所有依赖包放在 $GOPATH/pkg/mod目录下

init 函数	包初始化函数，导入包的时候会自动执行init函数
init函数用于程序执行前 作包的初始化，比如初始化变量
每个包可以拥有多个init函数
同一个包中有多个init的函数，顺序执行
不同包的init函数按照包的导入的依赖关系决定初始化函数的执行顺序
init函数不能被其他函数调用，而是在main函数执行之前，自动被调用

自己创建项目
[root@xxw go-test]# mkdir sanchuang
[root@xxw go-test]# cd sanchuang/
[root@xxw sanchuang]# go mod init sc	//初始化
go: creating new go.mod: module sc


go mod 命令
go mod init xxx (xxx是你的项目包名)
go mod tidy (下载当前项目需要的包)
go mod download

go get xxx 下载依赖包
 */
